//=======================================Copyright(c)===========================================
// 								  深圳易马达科技有限公司
//---------------------------------------文件信息----------------------------------------------
//文件名   	: EventRecord.h
//创建人  	: Handry
//创建日期	: 
//描述	    : 事件记录头文件
//-----------------------------------------------当前版本修订----------------------------------
//修改人   	:
//版本	    :
//修改日期	:
//描述	    :
//=============================================================================================
#ifndef _EVENTRECORD_H_
#define _EVENTRECORD_H_
//=============================================================================================
//头文件
//=============================================================================================
#include "BSPTypeDef.h"
#include "BSP_RTC.h"
//#include "PCF85063.h"

//=============================================================================================
//数据类型定义
//=============================================================================================
//时间日期结构体
typedef struct
{
    u32 num;//编号
    t_PCF85063_DATE t;
    u8 type;//记录类型
    u8 d[115];//数据
    u16 crc16;//校验
}t_RECORD;//一条事件记录总共128字节

typedef struct
{
    u16 flag;
    u32 earliest;//最早的记录编号
   // t_TIME et;
    u32 latest;  //最新的记录编号
    t_PCF85063_DATE lt;
    //u32 epointer;//最早记录的地址
    //u32 pointer;//指向下一个记录存储的地址
    u16 crc16;
}t_RECORD_INFO;


//=============================================================================================
//宏参数设定
//=============================================================================================
#define 	EVE_REC_CFG_FLAG 	0x1237

#define 	REC_TYPE_FAULT 		0x01
#define 	REC_TYPE_ACC 		0x02
#define 	REC_TYPE_PHOTO 		0x04
#define 	REC_TYPE_PERIOD 	0x08
#define 	REC_TYPE_RESET 		0x10
#define 	REC_TYPE_CHG 		0x20
#define 	REC_TYPE_SHDN 		0x40
#define 	REC_TYPE_INFO 		0x80

#define 	REC_INFO_TYPE_CTRL 	0x01
#define 	REC_INFO_TYPE_STATE 0x02
#define 	REC_INFO_TYPE_MODULE_FLAG 0x03  //新增外置模块休眠标志 21/09/07 handry

//=============================================================================================
//声明变量，供外部使用
//=============================================================================================
extern t_RECORD_INFO gRecordInfo;
extern t_RECORD gRecordRd;	//读取的记录只读
extern t_RECORD gRecordWr;	//写入的记录
extern u16 grecdiv;	        //定时记录事件间隔
extern u8 gRecType;		    //记录的类型

//=============================================================================================
//声明接口函数
//=============================================================================================
//=============================================================================================
//函数名称	: void EventRecordInit(void)
//函数参数	: void
//输出参数	: void
//静态变量	: void
//功	能	: 事件初始化函数
//注	意	: void
//=============================================================================================
void EventRecordInit(void);

//=============================================================================================
//函数名称	: void EventRecordInit(void)
//函数参数	: void
//输出参数	: void
//静态变量	: void
//功	能	: 关闭事件记录
//注	意	: void
//=============================================================================================
void EventRecordDisable(void);

//=============================================================================================
//函数名称	: void EventRecordEnable(void)
//函数参数	: void
//输出参数	: void
//静态变量	: void
//功	能	: 开启事件记录
//注	意	: void
//=============================================================================================
void EventRecordEnable(void);

//=============================================================================================
//函数名称	: void EventRecordMainTask(void)
//函数参数	: void
//输出参数	: void
//静态变量	: void
//功	能	: 事件记录主任务函数
//注    意	: 50ms任务
//=============================================================================================
void EventRecordMainTask(void);

#endif

/*****************************************end of EventRecord.h*****************************************/
